package com.example.security.annotation;

import com.example.security.enums.Logical;
import java.lang.annotation.*;

/**
 * 权限校验注解
 * 用于标注需要进行权限检查的方法或类
 */
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RequirePermissions {
    /**
     * 需要校验的权限码数组
     * 可以同时指定多个权限码
     */
    String[] value();

    /**
     * 验证模式
     * AND: 必须同时具有所有权限
     * OR: 只需具有其中任意一个权限
     */
    Logical logical() default Logical.AND;
} 